package com.freesky.provider.order.service;

import com.freesky.common.pojo.DataTablesResult;
import com.freesky.common.utils.reponse.JSONResponse;
import com.freesky.common.vo.VOItem;
import com.freesky.common.vo.VOProductDet;
import com.freesky.common.dao.entity.Item;


/**
 * @author Freesky
 * @date 2017/7/29
 */
public interface IItemService {

    /**
     * 通过ID获取商品包含详情
     * @param itemId
     * @return
     */
    JSONResponse getItemById(String itemId);


    /**
     * 分页搜索排序获取商品列表
     * @param draw
     * @param start
     * @param length
     * @param cid
     * @param search
     * @param orderCol
     * @param orderDir
     * @return
     */
    DataTablesResult getItemList(int draw, int start, int length, int cid,
                                 String search, String orderCol, String orderDir);

    /**
     * 多条件查询获取商品列表
     * @param draw
     * @param start
     * @param length
     * @param cid
     * @param search
     * @param minDate
     * @param maxDate
     * @param orderCol
     * @param orderDir
     * @return
     */
    DataTablesResult getItemSearchList(int draw, int start, int length, int cid,
                                       String search, String minDate, String maxDate,
                                       String orderCol, String orderDir);

    /**
     * 获取商品总数
     * @return
     */
    DataTablesResult getAllItemCount();

    /**
     * 修改商品状态
     * @param id
     * @param state
     * @return
     */
    Item alertItemState(String id, Integer state);

    /**
     * 彻底删除商品
     * @param ids
     * @return
     */
    JSONResponse deleteItem(String[] ids);

    /**
     * 添加商品
     * @param voItem
     * @return
     */
    JSONResponse addItem(VOItem voItem);

    /**
     * 更新商品
     * @param id
     * @param voItem
     * @return
     */
    JSONResponse updateItem(String id, VOItem voItem);


    JSONResponse getItemDetail(String id);

    /**
     * 前台页面多条件获取全部商品
     * @param page
     * @param size
     * @param sort
     * @param priceGt 最小价格
     * @param priceLte 最大价格
     * @return
     */
    JSONResponse getAll(int page, int size, String sort, Long cid, int priceGt, int priceLte);
}
